home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software of the Month Club 2000 October
/
Software of the Month - Ultimate Collection Shareware 277.iso
/
pc
/
PROGRAMS
/
UTILITY
/
WINLINUX
/
DATA1.CAB
/
programs_-_usrdoc
/
MAILX
/
MANUAL.TXT
< prev
Wrap
Text File
|
1999-09-17
|
84KB
|
2,641 lines
MMAAIILL RREEFFEERREENNCCEE MMAANNUUAALL
_K_u_r_t _S_h_o_e_n_s
Revised by
_C_r_a_i_g _L_e_r_e_s and _M_a_r_k _A_n_d_r_e_w_s
Version 5.5
June 25, 1998
11.. IInnttrroodduuccttiioonn
_M_a_i_l provides a simple and friendly environment for
sending and receiving mail. It divides incoming mail into
its constituent messages and allows the user to deal with
them in any order. In addition, it provides a set of _e_d-
like commands for manipulating messages and sending mail.
_M_a_i_l offers the user simple editing capabilities to ease the
composition of outgoing messages, as well as providing the
ability to define and send to names which address groups of
users. Finally, _M_a_i_l is able to send and receive messages
across such networks as the ARPANET, UUCP, and Berkeley net-
work.
This document describes how to use the _M_a_i_l program to
send and receive messages. The reader is not assumed to be
familiar with other message handling systems, but should be
familiar with the UNIX1 shell, the text editor, and some of
the common UNIX commands. "The UNIX Programmer's Manual,"
"An Introduction to Csh," and "Text Editing with Ex and Vi"
can be consulted for more information on these topics.
____________________
1 UNIX is a trademark of Bell Laboratories.
UUSSDD::77--22 MMaaiill RReeffeerreennccee MMaannuuaall
Here is how messages are handled: the mail system
accepts incoming _m_e_s_s_a_g_e_s for you from other people and col-
lects them in a file, called your _s_y_s_t_e_m _m_a_i_l_b_o_x. When you
login, the system notifies you if there are any messages
waiting in your system mailbox. If you are a _c_s_h user, you
will be notified when new mail arrives if you inform the
shell of the location of your mailbox. On version 7 sys-
tems, your system mailbox is located in the directory
/usr/spool/mail in a file with your login name. If your
login name is "sam," then you can make _c_s_h notify you of new
mail by including the following line in your .cshrc file:
set mail=/usr/spool/mail/sam
When you read your mail using _M_a_i_l, it reads your system
mailbox and separates that file into the individual messages
that have been sent to you. You can then read, reply to,
delete, or save these messages. Each message is marked with
its author and the date they sent it.
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--33
22.. CCoommmmoonn uussaaggee
The _M_a_i_l command has two distinct usages, according to
whether one wants to send or receive mail. Sending mail is
simple: to send a message to a user whose login name is,
say, "root," use the shell command:
% Mail root
then type your message. When you reach the end of the mes-
sage, type an EOT (control-d) at the beginning of a line,
which will cause _M_a_i_l to echo "EOT" and return you to the
Shell. When the user you sent mail to next logs in, he will
receive the message:
You have mail.
to alert him to the existence of your message.
If, while you are composing the message you decide that
you do not wish to send it after all, you can abort the let-
ter with a RUBOUT. Typing a single RUBOUT causes _M_a_i_l to
print
(Interrupt -- one more to kill letter)
Typing a second RUBOUT causes _M_a_i_l to save your partial let-
ter on the file "dead.letter" in your home directory and
abort the letter. Once you have sent mail to someone, there
is no way to undo the act, so be careful.
The message your recipient reads will consist of the
message you typed, preceded by a line telling who sent the
message (your login name) and the date and time it was sent.
If you want to send the same message to several other
people, you can list their login names on the command line.
Thus,
% Mail sam bob john
Tuition fees are due next Friday. Don't forget!!
<Control-d>
EOT
%
will send the reminder to sam, bob, and john.
If, when you log in, you see the message,
You have mail.
you can read the mail by typing simply:
UUSSDD::77--44 MMaaiill RReeffeerreennccee MMaannuuaall
% Mail
_M_a_i_l will respond by typing its version number and date and
then listing the messages you have waiting. Then it will
type a prompt and await your command. The messages are
assigned numbers starting with 1 -- you refer to the mes-
sages with these numbers. _M_a_i_l keeps track of which mes-
sages are _n_e_w (have been sent since you last read your mail)
and _r_e_a_d (have been read by you). New messages have an NN
next to them in the header listing and old, but unread mes-
sages have a UU next to them. _M_a_i_l keeps track of new/old
and read/unread messages by putting a header field called
"Status" into your messages.
To look at a specific message, use the ttyyppee command,
which may be abbreviated to simply tt. For example, if you
had the following messages:
N 1 root Wed Sep 21 09:21 "Tuition fees"
N 2 sam Tue Sep 20 22:55
you could examine the first message by giving the command:
type 1
which might cause _M_a_i_l to respond with, for example:
Message 1:
From root Wed Sep 21 09:21:45 1978
Subject: Tuition fees
Status: R
Tuition fees are due next Wednesday. Don't forget!!
Many _M_a_i_l commands that operate on messages take a message
number as an argument like the ttyyppee command. For these com-
mands, there is a notion of a current message. When you
enter the _M_a_i_l program, the current message is initially the
first one. Thus, you can often omit the message number and
use, for example,
t
to type the current message. As a further shorthand, you
can type a message by simply giving its message number.
Hence,
1
would type the first message.
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--55
Frequently, it is useful to read the messages in your
mailbox in order, one after another. You can read the next
message in _M_a_i_l by simply typing a newline. As a special
case, you can type a newline as your first command to _M_a_i_l
to type the first message.
If, after typing a message, you wish to immediately
send a reply, you can do so with the rreeppllyy command. RReeppllyy,
like ttyyppee, takes a message number as an argument. _M_a_i_l then
begins a message addressed to the user who sent you the mes-
sage. You may then type in your letter in reply, followed
by a <control-d> at the beginning of a line, as before.
_M_a_i_l will type EOT, then type the ampersand prompt to indi-
cate its readiness to accept another command. In our exam-
ple, if, after typing the first message, you wished to reply
to it, you might give the command:
reply
_M_a_i_l responds by typing:
To: root
Subject: Re: Tuition fees
and waiting for you to enter your letter. You are now in
the message collection mode described at the beginning of
this section and _M_a_i_l will gather up your message up to a
control-d. Note that it copies the subject header from the
original message. This is useful in that correspondence
about a particular matter will tend to retain the same sub-
ject heading, making it easy to recognize. If there are
other header fields in the message, the information found
will also be used. For example, if the letter had a "To:"
header listing several recipients, _M_a_i_l would arrange to
send your replay to the same people as well. Similarly, if
the original message contained a "Cc:" (carbon copies to)
field, _M_a_i_l would send your reply to _t_h_o_s_e users, too. _M_a_i_l
is careful, though, not too send the message to _y_o_u, even if
you appear in the "To:" or "Cc:" field, unless you ask to be
included explicitly. See section 4 for more details.
After typing in your letter, the dialog with _M_a_i_l might
look like the following:
reply
To: root
Subject: Tuition fees
Thanks for the reminder
EOT
&
UUSSDD::77--66 MMaaiill RReeffeerreennccee MMaannuuaall
The rreeppllyy command is especially useful for sustaining
extended conversations over the message system, with other
"listening" users receiving copies of the conversation. The
rreeppllyy command can be abbreviated to rr.
Sometimes you will receive a message that has been sent
to several people and wish to reply _o_n_l_y to the person who
sent it. RReeppllyy with a capital RR replies to a message, but
sends a copy to the sender only.
If you wish, while reading your mail, to send a message
to someone, but not as a reply to one of your messages, you
can send the message directly with the mmaaiill command, which
takes as arguments the names of the recipients you wish to
send to. For example, to send a message to "frank," you
would do:
mail frank
This is to confirm our meeting next Friday at 4.
EOT
&
The mmaaiill command can be abbreviated to mm.
Normally, each message you receive is saved in the file
_m_b_o_x in your login directory at the time you leave _M_a_i_l.
Often, however, you will not want to save a particular mes-
sage you have received because it is only of passing inter-
est. To avoid saving a message in _m_b_o_x you can delete it
using the ddeelleettee command. In our example,
delete 1
will prevent _M_a_i_l from saving message 1 (from root) in _m_b_o_x.
In addition to not saving deleted messages, _M_a_i_l will not
let you type them, either. The effect is to make the mes-
sage disappear altogether, along with its number. The
ddeelleettee command can be abbreviated to simply dd.
Many features of _M_a_i_l can be tailored to your liking
with the sseett command. The sseett command has two forms,
depending on whether you are setting a _b_i_n_a_r_y option or a
_v_a_l_u_e_d option. Binary options are either on or off. For
example, the "ask" option informs _M_a_i_l that each time you
send a message, you want it to prompt you for a subject
header, to be included in the message. To set the "ask"
option, you would type
set ask
Another useful _M_a_i_l option is "hold." Unless told oth-
erwise, _M_a_i_l moves the messages from your system mailbox to
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--77
the file _m_b_o_x in your home directory when you leave _M_a_i_l.
If you want _M_a_i_l to keep your letters in the system mailbox
instead, you can set the "hold" option.
Valued options are values which _M_a_i_l uses to adapt to
your tastes. For example, the "SHELL" option tells _M_a_i_l
which shell you like to use, and is specified by
set SHELL=/bin/csh
for example. Note that no spaces are allowed in
"SHELL=/bin/csh." A complete list of the _M_a_i_l options
appears in section 5.
Another important valued option is "crt." If you use a
fast video terminal, you will find that when you print long
messages, they fly by too quickly for you to read them.
With the "crt" option, you can make _M_a_i_l print any message
larger than a given number of lines by sending it through a
paging program. This program is specified by the valued
option PPAAGGEERR. If PPAAGGEERR is not set, a default paginator is
used. For example, most CRT users with 24-line screens
should do:
set crt=24
to paginate messages that will not fit on their screens. In
the default state, _m_o_r_e (default paginator) prints a screen-
ful of information, then types --More--. Type a space to
see the next screenful.
Another adaptation to user needs that _M_a_i_l provides is
that of _a_l_i_a_s_e_s. An alias is simply a name which stands for
one or more real user names. _M_a_i_l sent to an alias is
really sent to the list of real users associated with it.
For example, an alias can be defined for the members of a
project, so that you can send mail to the whole project by
sending mail to just a single name. The aalliiaass command in
_M_a_i_l defines an alias. Suppose that the users in a project
are named Sam, Sally, Steve, and Susan. To define an alias
called "project" for them, you would use the _M_a_i_l command:
alias project sam sally steve susan
The aalliiaass command can also be used to provide a convenient
name for someone whose user name is inconvenient. For exam-
ple, if a user named "Bob Anderson" had the login name
"anderson,"" you might want to use:
alias bob anderson
so that you could send mail to the shorter name, "bob."
UUSSDD::77--88 MMaaiill RReeffeerreennccee MMaannuuaall
While the aalliiaass and sseett commands allow you to customize
_M_a_i_l, they have the drawback that they must be retyped each
time you enter _M_a_i_l. To make them more convenient to use,
_M_a_i_l always looks for two files when it is invoked. It
first reads a system wide file "/usr/lib/Mail.rc," then a
user specific file, ".mailrc," which is found in the user's
home directory. The system wide file is maintained by the
system administrator and contains sseett commands that are
applicable to all users of the system. The ".mailrc" file
is usually used by each user to set options the way he likes
and define individual aliases. For example, my .mailrc file
looks like this:
set ask nosave SHELL=/bin/csh
As you can see, it is possible to set many options in the
same sseett command. The "nosave" option is described in sec-
tion 5.
Mail aliasing is implemented at the system-wide level
by the mail delivery system _s_e_n_d_m_a_i_l. These aliases are
stored in the file /usr/lib/aliases and are accessible to
all users of the system. The lines in /usr/lib/aliases are
of the form:
alias: name1, name2, name3
where _a_l_i_a_s is the mailing list name and the _n_a_m_e_i are the
members of the list. Long lists can be continued onto the
next line by starting the next line with a space or tab.
Remember that you must execute the shell command _n_e_w_a_l_i_a_s_e_s
after editing /usr/lib/aliases since the delivery system
uses an indexed file created by _n_e_w_a_l_i_a_s_e_s.
We have seen that _M_a_i_l can be invoked with command line
arguments which are people to send the message to, or with
no arguments to read mail. Specifying the --ff flag on the
command line causes _M_a_i_l to read messages from a file other
than your system mailbox. For example, if you have a col-
lection of messages in the file "letters" you can use _M_a_i_l
to read them with:
% Mail -f letters
You can use all the _M_a_i_l commands described in this document
to examine, modify, or delete messages from your "letters"
file, which will be rewritten when you leave _M_a_i_l with the
qquuiitt command described below.
Since mail that you read is saved in the file _m_b_o_x in
your home directory by default, you can read _m_b_o_x in your
home directory by using simply
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--99
% Mail -f
Normally, messages that you examine using the ttyyppee com-
mand are saved in the file "mbox" in your home directory if
you leave _M_a_i_l with the qquuiitt command described below. If
you wish to retain a message in your system mailbox you can
use the pprreesseerrvvee command to tell _M_a_i_l to leave it there.
The pprreesseerrvvee command accepts a list of message numbers, just
like ttyyppee and may be abbreviated to pprree.
Messages in your system mailbox that you do not examine
are normally retained in your system mailbox automatically.
If you wish to have such a message saved in _m_b_o_x without
reading it, you may use the mmbbooxx command to have them so
saved. For example,
mbox 2
in our example would cause the second message (from sam) to
be saved in _m_b_o_x when the qquuiitt command is executed. MMbbooxx is
also the way to direct messages to your _m_b_o_x file if you
have set the "hold" option described above. MMbbooxx can be
abbreviated to mmbb.
When you have perused all the messages of interest, you
can leave _M_a_i_l with the qquuiitt command, which saves the mes-
sages you have typed but not deleted in the file _m_b_o_x in
your login directory. Deleted messages are discarded irre-
trievably, and messages left untouched are preserved in your
system mailbox so that you will see them the next time you
type:
% Mail
The qquuiitt command can be abbreviated to simply qq.
If you wish for some reason to leave _M_a_i_l quickly with-
out altering either your system mailbox or _m_b_o_x, you can
type the xx command (short for eexxiitt), which will immediately
return you to the Shell without changing anything.
If, instead, you want to execute a Shell command with-
out leaving _M_a_i_l, you can type the command preceded by an
exclamation point, just as in the text editor. Thus, for
instance:
!date
will print the current date without leaving _M_a_i_l.
Finally, the hheellpp command is available to print out a
brief summary of the _M_a_i_l commands, using only the single
UUSSDD::77--1100 MMaaiill RReeffeerreennccee MMaannuuaall
character command abbreviations.
33.. MMaaiinnttaaiinniinngg ffoollddeerrss
_M_a_i_l includes a simple facility for maintaining groups
of messages together in folders. This section describes
this facility.
To use the folder facility, you must tell _M_a_i_l where
you wish to keep your folders. Each folder of messages will
be a single file. For convenience, all of your folders are
kept in a single directory of your choosing. To tell _M_a_i_l
where your folder directory is, put a line of the form
set folder=letters
in your _._m_a_i_l_r_c file. If, as in the example above, your
folder directory does not begin with a `/,' _M_a_i_l will assume
that your folder directory is to be found starting from your
home directory. Thus, if your home directory is //uussrr//ppeerrssoonn
the above example told _M_a_i_l to find your folder directory in
//uussrr//ppeerrssoonn//lleetttteerrss.
Anywhere a file name is expected, you can use a folder
name, preceded with `+.' For example, to put a message into
a folder with the ssaavvee command, you can use:
save +classwork
to save the current message in the _c_l_a_s_s_w_o_r_k folder. If the
_c_l_a_s_s_w_o_r_k folder does not yet exist, it will be created.
Note that messages which are saved with the ssaavvee command are
automatically removed from your system mailbox.
In order to make a copy of a message in a folder with-
out causing that message to be removed from your system
mailbox, use the ccooppyy command, which is identical in all
other respects to the ssaavvee command. For example,
copy +classwork
copies the current message into the _c_l_a_s_s_w_o_r_k folder and
leaves a copy in your system mailbox.
The ffoollddeerr command can be used to direct _M_a_i_l to the
contents of a different folder. For example,
folder +classwork
directs _M_a_i_l to read the contents of the _c_l_a_s_s_w_o_r_k folder.
All of the commands that you can use on your system mailbox
are also applicable to folders, including ttyyppee, ddeelleettee, and
rreeppllyy. To inquire which folder you are currently editing,
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--1111
use simply:
folder
To list your current set of folders, use the ffoollddeerrss
command.
To start _M_a_i_l reading one of your folders, you can use
the --ff option described in section 2. For example:
% Mail -f +classwork
will cause _M_a_i_l to read your _c_l_a_s_s_w_o_r_k folder without look-
ing at your system mailbox.
UUSSDD::77--1122 MMaaiill RReeffeerreennccee MMaannuuaall
44.. MMoorree aabboouutt sseennddiinngg mmaaiill
44..11.. TTiillddee eessccaappeess
While typing in a message to be sent to others, it is
often useful to be able to invoke the text editor on the
partial message, print the message, execute a shell command,
or do some other auxiliary function. _M_a_i_l provides these
capabilities through _t_i_l_d_e _e_s_c_a_p_e_s, which consist of a tilde
(~) at the beginning of a line, followed by a single charac-
ter which indicates the function to be performed. For exam-
ple, to print the text of the message so far, use:
~p
which will print a line of dashes, the recipients of your
message, and the text of the message so far. Since _M_a_i_l
requires two consecutive RUBOUT's to abort a letter, you can
use a single RUBOUT to abort the output of ~p or any other ~
escape without killing your letter.
If you are dissatisfied with the message as it stands,
you can invoke the text editor on it using the escape
~e
which causes the message to be copied into a temporary file
and an instance of the editor to be spawned. After modify-
ing the message to your satisfaction, write it out and quit
the editor. _M_a_i_l will respond by typing
(continue)
after which you may continue typing text which will be
appended to your message, or type <control-d> to end the
message. A standard text editor is provided by _M_a_i_l. You
can override this default by setting the valued option "EDI-
TOR" to something else. For example, you might prefer:
set EDITOR=/usr/ucb/ex
Many systems offer a screen editor as an alternative to
the standard text editor, such as the _v_i editor from UC
Berkeley. To use the screen, or _v_i_s_u_a_l editor, on your cur-
rent message, you can use the escape,
~v
~v works like ~e, except that the screen editor is invoked
instead. A default screen editor is defined by _M_a_i_l. If it
does not suit you, you can set the valued option "VISUAL" to
the path name of a different editor.
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--1133
It is often useful to be able to include the contents
of some file in your message; the escape
~r filename
is provided for this purpose, and causes the named file to
be appended to your current message. _M_a_i_l complains if the
file doesn't exist or can't be read. If the read is suc-
cessful, the number of lines and characters appended to your
message is printed, after which you may continue appending
text. The filename may contain shell metacharacters like *
and ? which are expanded according to the conventions of
your shell.
As a special case of ~r, the escape
~d
reads in the file "dead.letter" in your home directory.
This is often useful since _M_a_i_l copies the text of your mes-
sage there when you abort a message with RUBOUT.
To save the current text of your message on a file you
may use the
~w filename
escape. _M_a_i_l will print out the number of lines and charac-
ters written to the file, after which you may continue
appending text to your message. Shell metacharacters may be
used in the filename, as in ~r and are expanded with the
conventions of your shell.
If you are sending mail from within _M_a_i_l_'_s command mode
you can read a message sent to you into the message you are
constructing with the escape:
~m 4
which will read message 4 into the current message, shifted
right by one tab stop. You can name any non-deleted mes-
sage, or list of messages. Messages can also be forwarded
without shifting by a tab stop with ~f. This is the usual
way to forward a message.
If, in the process of composing a message, you decide
to add additional people to the list of message recipients,
you can do so with the escape
~t name1 name2 ...
You may name as few or many additional recipients as you
wish. Note that the users originally on the recipient list
UUSSDD::77--1144 MMaaiill RReeffeerreennccee MMaannuuaall
will still receive the message; you cannot remove someone
from the recipient list with ~t.
If you wish, you can associate a subject with your mes-
sage by using the escape
~s Arbitrary string of text
which replaces any previous subject with "Arbitrary string
of text." The subject, if given, is sent near the top of
the message prefixed with "Subject:" You can see what the
message will look like by using ~p.
For political reasons, one occasionally prefers to list
certain people as recipients of carbon copies of a message
rather than direct recipients. The escape
~c name1 name2 ...
adds the named people to the "Cc:" list, similar to ~t.
Again, you can execute ~p to see what the message will look
like.
The escape
~b name1 name2 ...
adds the named people to the "Cc:" list, but does not make
the names visible in the "Cc:" line ("blind" carbon copy).
The recipients of the message together constitute the
"To:" field, the subject the "Subject:" field, and the car-
bon copies the "Cc:" field. If you wish to edit these in
ways impossible with the ~t, ~s, ~c and ~b escapes, you can
use the escape
~h
which prints "To:" followed by the current list of recipi-
ents and leaves the cursor (or printhead) at the end of the
line. If you type in ordinary characters, they are appended
to the end of the current list of recipients. You can also
use your erase character to erase back into the list of
recipients, or your kill character to erase them altogether.
Thus, for example, if your erase and kill characters are the
standard (on printing terminals) # and @ symbols,
~h
To: root kurt####bill
would change the initial recipients "root kurt" to "root
bill." When you type a newline, _M_a_i_l advances to the "Sub-
ject:" field, where the same rules apply. Another newline
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--1155
brings you to the "Cc:" field, which may be edited in the
same fashion. Another newline brings you to the "Bcc:"
("blind" carbon copy) field, which follows the same rules as
the "Cc:" field. Another newline leaves you appending text
to the end of your message. You can use ~p to print the
current text of the header fields and the body of the mes-
sage.
To effect a temporary escape to the shell, the escape
~!command
is used, which executes _c_o_m_m_a_n_d and returns you to mailing
mode without altering the text of your message. If you
wish, instead, to filter the body of your message through a
shell command, then you can use
~|command
which pipes your message through the command and uses the
output as the new text of your message. If the command pro-
duces no output, _M_a_i_l assumes that something is amiss and
retains the old version of your message. A frequently-used
filter is the command _f_m_t, designed to format outgoing mail.
To effect a temporary escape to _M_a_i_l command mode
instead, you can use the
~:_M_a_i_l _c_o_m_m_a_n_d
escape. This is especially useful for retyping the message
you are replying to, using, for example:
~:t
It is also useful for setting options and modifying aliases.
If you wish abort the current message, you can use the
escape
~q
This will terminate the current message and return you to
the shell (or _M_a_i_l if you were using the mmaaiill command). If
the ssaavvee option is set, the message will be copied to the
file "dead.letter" in your home directory.
If you wish (for some reason) to send a message that
contains a line beginning with a tilde, you must double it.
Thus, for example,
~~This line begins with a tilde.
UUSSDD::77--1166 MMaaiill RReeffeerreennccee MMaannuuaall
sends the line
~This line begins with a tilde.
Finally, the escape
~?
prints out a brief summary of the available tilde escapes.
On some terminals (particularly ones with no lower
case) tilde's are difficult to type. _M_a_i_l allows you to
change the escape character with the "escape" option. For
example, I set
set escape=]
and use a right bracket instead of a tilde. If I ever need
to send a line beginning with right bracket, I double it,
just as for ~. Changing the escape character removes the
special meaning of ~.
44..22.. NNeettwwoorrkk aacccceessss
This section describes how to send mail to people on
other machines. Recall that sending to a plain login name
sends mail to that person on your machine. If your machine
is directly (or sometimes, even, indirectly) connected to
the Arpanet, you can send messages to people on the Arpanet
using a name of the form
name@host.domain
where _n_a_m_e is the login name of the person you're trying to
reach, _h_o_s_t is the name of the machine on the Arpanet, and
_d_o_m_a_i_n is the higher-level scope within which the hostname
is known, e.g. EDU (for educational institutions), COM (for
commercial entities), GOV (for governmental agencies), ARPA
for many other things, BITNET or CSNET for those networks.
If your recipient logs in on a machine connected to
yours by UUCP (the Bell Laboratories supplied network that
communicates over telephone lines), sending mail can be a
bit more complicated. You must know the list of machines
through which your message must travel to arrive at his
site. So, if his machine is directly connected to yours,
you can send mail to him using the syntax:
host!name
where, again, _h_o_s_t is the name of the machine and _n_a_m_e is
the login name. If your message must go through an
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--1177
intermediary machine first, you must use the syntax:
intermediary!host!name
and so on. It is actually a feature of UUCP that the map of
all the systems in the network is not known anywhere (except
where people decide to write it down for convenience). Talk
to your system administrator about good ways to get places;
the _u_u_n_a_m_e command will tell you systems whose names are
recognized, but not which ones are frequently called or
well-connected.
When you use the rreeppllyy command to respond to a letter,
there is a problem of figuring out the names of the users in
the "To:" and "Cc:" lists _r_e_l_a_t_i_v_e _t_o _t_h_e _c_u_r_r_e_n_t _m_a_c_h_i_n_e.
If the original letter was sent to you by someone on the
local machine, then this problem does not exist, but if the
message came from a remote machine, the problem must be
dealt with. _M_a_i_l uses a heuristic to build the correct name
for each user relative to the local machine. So, when you
rreeppllyy to remote mail, the names in the "To:" and "Cc:" lists
may change somewhat.
44..33.. SSppeecciiaall rreecciippiieennttss
As described previously, you can send mail to either
user names or aalliiaass names. It is also possible to send mes-
sages directly to files or to programs, using special con-
ventions. If a recipient name has a `/' in it or begins
with a `+', it is assumed to be the path name of a file into
which to send the message. If the file already exists, the
message is appended to the end of the file. If you want to
name a file in your current directory (ie, one for which a
`/' would not usually be needed) you can precede the name
with `./' So, to send mail to the file "memo" in the current
directory, you can give the command:
% Mail ./memo
If the name begins with a `+,' it is expanded into the full
path name of the folder name in your folder directory. This
ability to send mail to files can be used for a variety of
purposes, such as maintaining a journal and keeping a record
of mail sent to a certain group of users. The second exam-
ple can be done automatically by including the full pathname
of the record file in the aalliiaass command for the group.
Using our previous aalliiaass example, you might give the com-
mand:
alias project sam sally steve susan /usr/project/mail_record
Then, all mail sent to "project" would be saved on the file
"/usr/project/mail_record" as well as being sent to the
UUSSDD::77--1188 MMaaiill RReeffeerreennccee MMaannuuaall
members of the project. This file can be examined using
_M_a_i_l _-_f.
It is sometimes useful to send mail directly to a pro-
gram, for example one might write a project billboard pro-
gram and want to access it using _M_a_i_l. To send messages to
the billboard program, one can send mail to the special name
`|billboard' for example. _M_a_i_l treats recipient names that
begin with a `|' as a program to send the mail to. An aalliiaass
can be set up to reference a `|' prefaced name if desired.
_C_a_v_e_a_t_s: the shell treats `|' specially, so it must be
quoted on the command line. Also, the `| program' must be
presented as a single argument to mail. The safest course
is to surround the entire name with double quotes. This
also applies to usage in the aalliiaass command. For example, if
we wanted to alias `rmsgs' to `rmsgs -s' we would need to
say:
alias rmsgs "| rmsgs -s"
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--1199
55.. AAddddiittiioonnaall ffeeaattuurreess
This section describes some additional commands useful
for reading your mail, setting options, and handling lists
of messages.
55..11.. MMeessssaaggee lliissttss
Several _M_a_i_l commands accept a list of messages as an
argument. Along with ttyyppee and ddeelleettee, described in section
2, there is the ffrroomm command, which prints the message head-
ers associated with the message list passed to it. The ffrroomm
command is particularly useful in conjunction with some of
the message list features described below.
A _m_e_s_s_a_g_e _l_i_s_t consists of a list of message numbers,
ranges, and names, separated by spaces or tabs. Message
numbers may be either decimal numbers, which directly spec-
ify messages, or one of the special characters "" "." or
"$" to specify the first relevant, current, or last relevant
message, respectively. _R_e_l_e_v_a_n_t here means, for most com-
mands "not deleted" and "deleted" for the uunnddeelleettee command.
A range of messages consists of two message numbers (of
the form described in the previous paragraph) separated by a
dash. Thus, to print the first four messages, use
type 1-4
and to print all the messages from the current message to
the last message, use
type .-$
A _n_a_m_e is a user name. The user names given in the
message list are collected together and each message
selected by other means is checked to make sure it was sent
by one of the named users. If the message consists entirely
of user names, then every message sent by one of those users
that is _r_e_l_e_v_a_n_t (in the sense described earlier) is
selected. Thus, to print every message sent to you by
"root," do
type root
As a shorthand notation, you can specify simply "*" to
get every _r_e_l_e_v_a_n_t (same sense) message. Thus,
type *
prints all undeleted messages,
UUSSDD::77--2200 MMaaiill RReeffeerreennccee MMaannuuaall
delete *
deletes all undeleted messages, and
undelete *
undeletes all deleted messages.
You can search for the presence of a word in subject
lines with //. For example, to print the headers of all mes-
sages that contain the word "PASCAL," do:
from /pascal
Note that subject searching ignores upper/lower case differ-
ences.
55..22.. LLiisstt ooff ccoommmmaannddss
This section describes all the _M_a_i_l commands available
when receiving mail.
-- The -- command goes to the previous message and prints
it. The -- command may be given a decimal number _n as
an argument, in which case the _nth previous message is
gone to and printed.
?? Prints a brief summary of commands.
!! Used to preface a command to be executed by the shell.
PPrriinntt
Like pprriinntt, but also print out ignored header fields.
See also pprriinntt, iiggnnoorree and rreettaaiinn. PPrriinntt can be abbre-
viated to PP.
RReeppllyy or RReessppoonndd
Note the capital RR in the name. Frame a reply to a one
or more messages. The reply (or replies if you are
using this on multiple messages) will be sent ONLY to
the person who sent you the message (respectively, the
set of people who sent the messages you are replying
to). You can add people using the ~~tt, ~~cc and ~~bb tilde
escapes. The subject in your reply is formed by pref-
acing the subject in the original message with "Re:"
unless it already began thus. If the original message
included a "reply-to" header field, the reply will go
_o_n_l_y to the recipient named by "reply-to." You type in
your message using the same conventions available to
you through the mmaaiill command. The RReeppllyy command is
especially useful for replying to messages that were
sent to enormous distribution groups when you really
just want to send a message to the originator. Use it
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--2211
often. RReeppllyy (and RReessppoonndd) can be abbreviated to RR.
TTyyppee
Identical to the PPrriinntt command. TTyyppee can be abbrevi-
ated to TT.
aalliiaass
Define a name to stand for a set of other names. This
is used when you want to send messages to a certain
group of people and want to avoid retyping their names.
For example
alias project john sue willie kathryn
creates an alias _p_r_o_j_e_c_t which expands to the four peo-
ple John, Sue, Willie, and Kathryn. If no arguments
are given, all currently-defined aliases are printed.
If one argument is given, that alias is printed (if it
exists). AAlliiaass can be abbreviated to aa.
aalltteerrnnaatteess
If you have accounts on several machines, you may find
it convenient to use the /usr/lib/aliases on all the
machines except one to direct your mail to a single
account. The aalltteerrnnaatteess command is used to inform _M_a_i_l
that each of these other addresses is really _y_o_u.
_A_l_t_e_r_n_a_t_e_s takes a list of user names and remembers
that they are all actually you. When you rreeppllyy to mes-
sages that were sent to one of these alternate names,
_M_a_i_l will not bother to send a copy of the message to
this other address (which would simply be directed back
to you by the alias mechanism). If _a_l_t_e_r_n_a_t_e_s is given
no argument, it lists the current set of alternate
names. AAlltteerrnnaatteess is usually used in the .mailrc file.
AAlltteerrnnaatteess can be abbreviated to aalltt.
cchhddiirr
The cchhddiirr command allows you to change your current
directory. CChhddiirr takes a single argument, which is
taken to be the pathname of the directory to change to.
If no argument is given, cchhddiirr changes to your home
directory. CChhddiirr can be abbreviated to cc.
ccooppyy
The ccooppyy command does the same thing that ssaavvee does,
except that it does not mark the messages it is used on
for deletion when you quit. CCooppyy can be abbreviated to
ccoo.
ddeelleettee
Deletes a list of messages. Deleted messages can be
reclaimed with the uunnddeelleettee command. DDeelleettee can be
abbreviated to dd.
UUSSDD::77--2222 MMaaiill RReeffeerreennccee MMaannuuaall
ddpp or ddtt
These commands delete the current message and print the
next message. They are useful for quickly reading and
disposing of mail. If there is no next message, _m_a_i_l
says ``at EOF.''
eeddiitt
To edit individual messages using the text editor, the
eeddiitt command is provided. The eeddiitt command takes a
list of messages as described under the ttyyppee command
and processes each by writing it into the file Message_x
where _x is the message number being edited and execut-
ing the text editor on it. When you have edited the
message to your satisfaction, write the message out and
quit, upon which _M_a_i_l will read the message back and
remove the file. EEddiitt can be abbreviated to ee.
eellssee
Marks the end of the then-part of an iiff statement and
the beginning of the part to take effect if the condi-
tion of the iiff statement is false.
eennddiiff
Marks the end of an iiff statement.
eexxiitt or xxiitt
Leave _M_a_i_l without updating the system mailbox or the
file your were reading. Thus, if you accidentally
delete several messages, you can use eexxiitt to avoid
scrambling your mailbox. EExxiitt can be abbreviated to eexx
or xx.
ffiillee
The same as ffoollddeerr. FFiillee can be abbreviated to ffii.
ffoollddeerrss
List the names of the folders in your folder directory.
ffoollddeerr
The ffoollddeerr command switches to a new mail file or
folder. With no arguments, it tells you which file you
are currently reading. If you give it an argument, it
will write out changes (such as deletions) you have
made in the current file and read the new file. Some
special conventions are recognized for the name:
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--2233
Name Meaning
--------------------------------------------
# Previous file read
% Your system mailbox
%name _N_a_m_e's system mailbox
& Your ~/mbox file
+folder A file in your folder directory
FFoollddeerr can be abbreviated to ffoo.
ffrroomm
The ffrroomm command takes a list of messages and prints
out the header lines for each one; hence
from joe
is the easy way to display all the message headers from
"joe." FFrroomm can be abbreviated to ff.
hheeaaddeerrss
When you start up _M_a_i_l to read your mail, it lists the
message headers that you have. These headers tell you
who each message is from, when they were received, how
many lines and characters each message is, and the
"Subject:" header field of each message, if present.
In addition, _M_a_i_l tags the message header of each mes-
sage that has been the object of the pprreesseerrvvee command
with a "P." Messages that have been ssaavveedd or wwrriitttteenn
are flagged with a "*." Finally, ddeelleetteedd messages are
not printed at all. If you wish to reprint the current
list of message headers, you can do so with the hheeaaddeerrss
command. The hheeaaddeerrss command (and thus the initial
header listing) only lists the first so many message
headers. The number of headers listed depends on the
speed of your terminal. This can be overridden by
specifying the number of headers you want with the _w_i_n_-
_d_o_w option. _M_a_i_l maintains a notion of the current
"window" into your messages for the purposes of print-
ing headers. Use the zz command to move forward and
back a window. You can move _M_a_i_l_'_s notion of the cur-
rent window directly to a particular message by using,
for example,
headers 40
to move _M_a_i_l_'_s attention to the messages around message
40. If a ``+'' argument is given, then the next
screenful of message headers is printed, and if a ``-''
argument is given, the previous screenful of message
headers is printed. HHeeaaddeerrss can be abbreviated to hh.
UUSSDD::77--2244 MMaaiill RReeffeerreennccee MMaannuuaall
hheellpp
Print a brief and usually out of date help message
about the commands in _M_a_i_l. The _m_a_n page for _m_a_i_l is
usually more up-to-date than either the help message or
this manual. It is also a synonym for ??.
hhoolldd
Arrange to hold a list of messages in the system mail-
box, instead of moving them to the file _m_b_o_x in your
home directory. If you set the binary option _h_o_l_d,
this will happen by default. It does not override the
ddeelleettee command. HHoolldd can be abbreviated to hhoo.
iiff Commands in your ".mailrc" file can be executed condi-
tionally depending on whether you are sending or
receiving mail with the iiff command. For example, you
can do:
if receive
_c_o_m_m_a_n_d_s...
endif
An eellssee form is also available:
if send
_c_o_m_m_a_n_d_s...
else
_c_o_m_m_a_n_d_s...
endif
Note that the only allowed conditions are rreecceeiivvee and
sseenndd.
iiggnnoorree
NN..BB..:: _I_g_n_o_r_e has been superseded by _r_e_t_a_i_n_.
Add the list of header fields named to the _i_g_n_o_r_e _l_i_s_t.
Header fields in the ignore list are not printed on
your terminal when you print a message. This allows
you to suppress printing of certain machine-generated
header fields, such as _V_i_a which are not usually of
interest. The TTyyppee and PPrriinntt commands can be used to
print a message in its entirety, including ignored
fields. If iiggnnoorree is executed with no arguments, it
lists the current set of ignored fields.
lliisstt
List the valid _M_a_i_l commands. LLiisstt can be abbreviated
to ll.
mmaaiill
Send mail to one or more people. If you have the _a_s_k
option set, _M_a_i_l will prompt you for a subject to your
message. Then you can type in your message, using
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--2255
tilde escapes as described in section 4 to edit, print,
or modify your message. To signal your satisfaction
with the message and send it, type control-d at the
beginning of a line, or a . alone on a line if you set
the option _d_o_t. To abort the message, type two inter-
rupt characters (RUBOUT by default) in a row or use the
~~qq escape. The mmaaiill command can be abbreviated to mm.
mmbbooxx
Indicate that a list of messages be sent to _m_b_o_x in
your home directory when you quit. This is the default
action for messages if you do _n_o_t have the _h_o_l_d option
set.
nneexxtt or ++
The nneexxtt command goes to the next message and types it.
If given a message list, nneexxtt goes to the first such
message and types it. Thus,
next root
goes to the next message sent by "root" and types it.
The nneexxtt command can be abbreviated to simply a new-
line, which means that one can go to and type a message
by simply giving its message number or one of the magic
characters "^" "." or "$". Thus,
.
prints the current message and
4
prints message 4, as described previously. NNeexxtt can be
abbreviated to nn.
pprreesseerrvvee
Same as hhoolldd. Cause a list of messages to be held in
your system mailbox when you quit. PPrreesseerrvvee can be
abbreviated to pprree.
pprriinntt
Print the specified messages. If the ccrrtt variable is
set, messages longer than the number of lines it indi-
cates are paged through the command specified by the
PPAAGGEERR variable. The pprriinntt command can be abbreviated
to pp.
qquuiitt
Terminates the session, saving all undeleted, unsaved
and unwritten messages in the user's _m_b_o_x file in their
login directory (messages marked as having been read),
preserving all messages marked with hhoolldd or pprreesseerrvvee or
UUSSDD::77--2266 MMaaiill RReeffeerreennccee MMaannuuaall
never referenced in their system mailbox. Any messages
that were deleted, saved, written or saved to _m_b_o_x are
removed from their system mailbox. If new mail has
arrived during the session, the message ``You have new
mail'' is given. If given while editing a mailbox file
with the --ff flag, then the edit file is rewritten. A
return to the Shell is effected, unless the rewrite of
edit file fails, in which case the user can escape with
the eexxiitt command. QQuuiitt can be abbreviated to qq.
rreeppllyy or rreessppoonndd
Frame a reply to a single message. The reply will be
sent to the person who sent you the message (to which
you are replying), plus all the people who received the
original message, except you. You can add people using
the ~~tt, ~~cc and ~~bb tilde escapes. The subject in your
reply is formed by prefacing the subject in the origi-
nal message with "Re:" unless it already began thus.
If the original message included a "reply-to" header
field, the reply will go _o_n_l_y to the recipient named by
"reply-to." You type in your message using the same
conventions available to you through the mmaaiill command.
The rreeppllyy (and rreessppoonndd) command can be abbreviated to
rr.
rreettaaiinn
Add the list of header fields named to the _r_e_t_a_i_n_e_d
_l_i_s_t. Only the header fields in the retain list are
shown on your terminal when you print a message. All
other header fields are suppressed. The TTyyppee and PPrriinntt
commands can be used to print a message in its
entirety. If rreettaaiinn is executed with no arguments, it
lists the current set of retained fields.
ssaavvee
It is often useful to be able to save messages on
related topics in a file. The ssaavvee command gives you
the ability to do this. The ssaavvee command takes as an
argument a list of message numbers, followed by the
name of the file in which to save the messages. The
messages are appended to the named file, thus allowing
one to keep several messages in the file, stored in the
order they were put there. The filename in quotes,
followed by the line count and character count is
echoed on the user's terminal. An example of the ssaavvee
command relative to our running example is:
s 1 2 tuitionmail
SSaavveedd messages are not automatically saved in _m_b_o_x at
quit time, nor are they selected by the nneexxtt command
described above, unless explicitly specified. SSaavvee can
be abbreviated to ss.
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--2277
sseett
Set an option or give an option a value. Used to cus-
tomize _M_a_i_l. Section 5.3 contains a list of the
options. Options can be _b_i_n_a_r_y, in which case they are
_o_n or _o_f_f, or _v_a_l_u_e_d. To set a binary option _o_p_t_i_o_n
_o_n, do
set option
To give the valued option _o_p_t_i_o_n the value _v_a_l_u_e, do
set option=value
There must be no space before or after the ``='' sign.
If no arguments are given, all variable values are
printed. Several options can be specified in a single
sseett command. SSeett can be abbreviated to ssee.
sshheellll
The sshheellll command allows you to escape to the shell.
SShheellll invokes an interactive shell and allows you to
type commands to it. When you leave the shell, you
will return to _M_a_i_l. The shell used is a default
assumed by _M_a_i_l; you can override this default by set-
ting the valued option "SHELL," eg:
set SHELL=/bin/csh
SShheellll can be abbreviated to sshh.
ssiizzee
Takes a message list and prints out the size in charac-
ters of each message.
ssoouurrccee
The ssoouurrccee command reads _m_a_i_l commands from a file. It
is useful when you are trying to fix your ".mailrc"
file and you need to re-read it. SSoouurrccee can be abbre-
viated to ssoo.
ttoopp
The ttoopp command takes a message list and prints the
first five lines of each addressed message. If you
wish, you can change the number of lines that ttoopp
prints out by setting the valued option "toplines." On
a CRT terminal,
set toplines=10
might be preferred. TToopp can be abbreviated to ttoo.
ttyyppee
Same as pprriinntt. Takes a message list and types out each
UUSSDD::77--2288 MMaaiill RReeffeerreennccee MMaannuuaall
message on the terminal. The ttyyppee command can be
abbreviated to tt.
uunnddeelleettee
Takes a message list and marks each message as _n_o_t
being deleted. UUnnddeelleettee can be abbreviated to uu.
uunnrreeaadd
Takes a message list and marks each message as _n_o_t hav-
ing been read. UUnnrreeaadd can be abbreviated to UU.
uunnsseett
Takes a list of option names and discards their remem-
bered values; the inverse of sseett .
vviissuuaall
It is often useful to be able to invoke one of two edi-
tors, based on the type of terminal one is using. To
invoke a display oriented editor, you can use the
vviissuuaall command. The operation of the vviissuuaall command is
otherwise identical to that of the eeddiitt command.
Both the eeddiitt and vviissuuaall commands assume some default
text editors. These default editors can be overridden
by the valued options "EDITOR" and "VISUAL" for the
standard and screen editors. You might want to do:
set EDITOR=/usr/ucb/ex VISUAL=/usr/ucb/vi
VViissuuaall can be abbreviated to vv.
wwrriittee
The ssaavvee command always writes the entire message,
including the headers, into the file. If you want to
write just the message itself, you can use the wwrriittee
command. The wwrriittee command has the same syntax as the
ssaavvee command, and can be abbreviated to simply ww.
Thus, we could write the second message by doing:
w 2 file.c
As suggested by this example, the wwrriittee command is use-
ful for such tasks as sending and receiving source pro-
gram text over the message system. The filename in
quotes, followed by the line count and character count
is echoed on the user's terminal.
zz _M_a_i_l presents message headers in windowfuls as
described under the hheeaaddeerrss command. You can move
_M_a_i_l_'_s attention forward to the next window by giving
the
z+
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--2299
command. Analogously, you can move to the previous
window with:
z-
55..33.. CCuussttoomm ooppttiioonnss
Throughout this manual, we have seen examples of binary
and valued options. This section describes each of the
options in alphabetical order, including some that you have
not seen yet. To avoid confusion, please note that the
options are either all lower case letters or all upper case
letters. When I start a sentence such as: "Ask" causes _M_a_i_l
to prompt you for a subject header, I am only capitalizing
"ask" as a courtesy to English.
EEDDIITTOORR
The valued option "EDITOR" defines the pathname of the
text editor to be used in the eeddiitt command and ~e. If
not defined, a standard editor is used.
PPAAGGEERR
Pathname of the program to use for paginating output
when it exceeds _c_r_t lines. A default paginator is used
if this option is not defined.
SSHHEELLLL
The valued option "SHELL" gives the path name of your
shell. This shell is used for the !! command and ~!
escape. In addition, this shell expands file names
with shell metacharacters like * and ? in them.
VVIISSUUAALL
The valued option "VISUAL" defines the pathname of the
screen editor to be used in the vviissuuaall command and ~v
escape. A standard screen editor is used if you do not
define one.
aappppeenndd
The "append" option is binary and causes messages saved
in _m_b_o_x to be appended to the end rather than
prepended. Normally, _M_a_i_l will put messages in _m_b_o_x in
the same order that the system puts messages in your
system mailbox. By setting "append," you are request-
ing that _m_b_o_x be appended to regardless. It is in any
event quicker to append.
aasskk
"Ask" is a binary option which causes _M_a_i_l to prompt
you for the subject of each message you send. If you
respond with simply a newline, no subject field will be
sent.
UUSSDD::77--3300 MMaaiill RReeffeerreennccee MMaannuuaall
aasskkcccc
"Askcc" is a binary option which causes you to be
prompted for additional carbon copy recipients at the
end of each message. Responding with a newline shows
your satisfaction with the current list.
aauuttoopprriinntt
"Autoprint" is a binary option which causes the ddeelleettee
command to behave like ddpp -- thus, after deleting a
message, the next one will be typed automatically.
This is useful when quickly scanning and deleting mes-
sages in your mailbox.
ccrrtt
The valued option is used as a threshold to determine
how long a message must be before PPAAGGEERR is used to read
it.
ddeebbuugg
The binary option "debug" causes debugging information
to be displayed. Use of this option is the same as
using the --dd command line flag.
ddoott
"Dot" is a binary option which, if set, causes _M_a_i_l to
interpret a period alone on a line as the terminator of
the message you are sending.
eessccaappee
To allow you to change the escape character used when
sending mail, you can set the valued option "escape."
Only the first character of the "escape" option is
used, and it must be doubled if it is to appear as the
first character of a line of your message. If you
change your escape character, then ~ loses all its spe-
cial meaning, and need no longer be doubled at the
beginning of a line.
ffoollddeerr
The name of the directory to use for storing folders of
messages. If this name begins with a `/' _M_a_i_l consid-
ers it to be an absolute pathname; otherwise, the
folder directory is found relative to your home direc-
tory.
hhoolldd
The binary option "hold" causes messages that have been
read but not manually dealt with to be held in the sys-
tem mailbox. This prevents such messages from being
automatically swept into your _m_b_o_x file.
iiggnnoorree
The binary option "ignore" causes RUBOUT characters
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--3311
from your terminal to be ignored and echoed as @'s
while you are sending mail. RUBOUT characters retain
their original meaning in _M_a_i_l command mode. Setting
the "ignore" option is equivalent to supplying the --ii
flag on the command line as described in section 6.
iiggnnoorreeeeooff
An option related to "dot" is "ignoreeof" which makes
_M_a_i_l refuse to accept a control-d as the end of a mes-
sage. "Ignoreeof" also applies to _M_a_i_l command mode.
kkeeeepp
The "keep" option causes _M_a_i_l to truncate your system
mailbox instead of deleting it when it is empty. This
is useful if you elect to protect your mailbox, which
you would do with the shell command:
chmod 600 /usr/spool/mail/yourname
where _y_o_u_r_n_a_m_e is your login name. If you do not do
this, anyone can probably read your mail, although peo-
ple usually don't.
kkeeeeppssaavvee
When you ssaavvee a message, _M_a_i_l usually discards it when
you qquuiitt. To retain all saved messages, set the "keep-
save" option.
mmeettoooo
When sending mail to an alias, _M_a_i_l makes sure that if
you are included in the alias, that mail will not be
sent to you. This is useful if a single alias is being
used by all members of the group. If however, you wish
to receive a copy of all the messages you send to the
alias, you can set the binary option "metoo."
nnoohheeaaddeerr
The binary option "noheader" suppresses the printing of
the version and headers when _M_a_i_l is first invoked.
Setting this option is the same as using --NN on the com-
mand line.
nnoossaavvee
Normally, when you abort a message with two RUBOUTs,
_M_a_i_l copies the partial letter to the file "dead.let-
ter" in your home directory. Setting the binary option
"nosave" prevents this.
RReeppllyyaallll
Reverses the sense of _r_e_p_l_y and _R_e_p_l_y commands.
qquuiieett
The binary option "quiet" suppresses the printing of
UUSSDD::77--3322 MMaaiill RReeffeerreennccee MMaannuuaall
the version when _M_a_i_l is first invoked, as well as
printing the for example "Message 4:" from the ttyyppee
command.
rreeccoorrdd
If you love to keep records, then the valued option
"record" can be set to the name of a file to save your
outgoing mail. Each new message you send is appended
to the end of the file.
ssccrreeeenn
When _M_a_i_l initially prints the message headers, it
determines the number to print by looking at the speed
of your terminal. The faster your terminal, the more
it prints. The valued option "screen" overrides this
calculation and specifies how many message headers you
want printed. This number is also used for scrolling
with the zz command.
sseennddmmaaiill
To use an alternate mail delivery system, set the
"sendmail" option to the full pathname of the program
to use. Note: this is not for everyone! Most people
should use the default delivery system.
ttoopplliinneess
The valued option "toplines" defines the number of
lines that the "top" command will print out instead of
the default five lines.
vveerrbboossee
The binary option "verbose" causes _M_a_i_l to invoke send-
mail with the --vv flag, which causes it to go into ver-
bose mode and announce expansion of aliases, etc. Set-
ting the "verbose" option is equivalent to invoking
_M_a_i_l with the --vv flag as described in section 6.
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--3333
66.. CCoommmmaanndd lliinnee ooppttiioonnss
This section describes command line options for _M_a_i_l
and what they are used for.
-N Suppress the initial printing of headers.
-d Turn on debugging information. Not of general inter-
est.
-f file
Show the messages in _f_i_l_e instead of your system mail-
box. If _f_i_l_e is omitted, _M_a_i_l reads _m_b_o_x in your home
directory.
-i Ignore tty interrupt signals. Useful on noisy phone
lines, which generate spurious RUBOUT or DELETE charac-
ters. It's usually more effective to change your
interrupt character to control-c, for which see the
_s_t_t_y shell command.
-n Inhibit reading of /usr/lib/Mail.rc. Not generally
useful, since /usr/lib/Mail.rc is usually empty.
-s string
Used for sending mail. _S_t_r_i_n_g is used as the subject
of the message being composed. If _s_t_r_i_n_g contains
blanks, you must surround it with quote marks.
-u name
Read _n_a_m_e_s_'_s mail instead of your own. Unwitting oth-
ers often neglect to protect their mailboxes, but dis-
cretion is advised. Essentially, --uu uusseerr is a shorthand
way of doing --ff //uussrr//ssppooooll//mmaaiill//uusseerr.
-v Use the --vv flag when invoking sendmail. This feature
may also be enabled by setting the the option "ver-
bose".
The following command line flags are also recognized,
but are intended for use by programs invoking _M_a_i_l and not
for people.
-T file
Arrange to print on _f_i_l_e the contents of the _a_r_t_i_c_l_e_-_i_d
fields of all messages that were either read or
deleted. --TT is for the _r_e_a_d_n_e_w_s program and should NOT
be used for reading your mail.
-h number
Pass on hop count information. _M_a_i_l will take the num-
ber, increment it, and pass it with --hh to the mail
delivery system. --hh only has effect when sending mail
UUSSDD::77--3344 MMaaiill RReeffeerreennccee MMaannuuaall
and is used for network mail forwarding.
-r name
Used for network mail forwarding: interpret _n_a_m_e as
the sender of the message. The _n_a_m_e and --rr are simply
sent along to the mail delivery system. Also, _M_a_i_l
will wait for the message to be sent and return the
exit status. Also restricts formatting of message.
Note that --hh and --rr, which are for network mail for-
warding, are not used in practice since mail forwarding is
now handled separately. They may disappear soon.
77.. FFoorrmmaatt ooff mmeessssaaggeess
This section describes the format of messages. Mes-
sages begin with a _f_r_o_m line, which consists of the word
"From" followed by a user name, followed by anything, fol-
lowed by a date in the format returned by the _c_t_i_m_e library
routine described in section 3 of the Unix Programmer's Man-
ual. A possible _c_t_i_m_e format date is:
Tue Dec 1 10:58:23 1981
The _c_t_i_m_e date may be optionally followed by a single space
and a time zone indication, which should be three capital
letters, such as PDT.
Following the _f_r_o_m line are zero or more _h_e_a_d_e_r _f_i_e_l_d
lines. Each header field line is of the form:
name: information
_N_a_m_e can be anything, but only certain header fields are
recognized as having any meaning. The recognized header
fields are: _a_r_t_i_c_l_e_-_i_d, _b_c_c, _c_c, _f_r_o_m, _r_e_p_l_y_-_t_o, _s_e_n_d_e_r,
_s_u_b_j_e_c_t, and _t_o. Other header fields are also significant
to other systems; see, for example, the current Arpanet mes-
sage standard for much more information on this topic. A
header field can be continued onto following lines by making
the first character on the following line a space or tab
character.
If any headers are present, they must be followed by a
blank line. The part that follows is called the _b_o_d_y of the
message, and must be ASCII text, not containing null charac-
ters. Each line in the message body must be no longer than
512 characters and terminated with an ASCII newline charac-
ter. If binary data must be passed through the mail system,
it is suggested that this data be encoded in a system which
encodes six bits into a printable character (i.e.: uuen-
code). For example, one could use the upper and lower case
letters, the digits, and the characters comma and period to
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--3355
make up the 64 characters. Then, one can send a 16-bit
binary number as three characters. These characters should
be packed into lines, preferably lines about 70 characters
long as long lines are transmitted more efficiently.
The message delivery system always adds a blank line to
the end of each message. This blank line must not be
deleted.
The UUCP message delivery system sometimes adds a blank
line to the end of a message each time it is forwarded
through a machine.
It should be noted that some network transport proto-
cols enforce limits to the lengths of messages.
UUSSDD::77--3366 MMaaiill RReeffeerreennccee MMaannuuaall
88.. GGlloossssaarryy
This section contains the definitions of a few phrases
peculiar to _M_a_i_l.
_a_l_i_a_s
An alternative name for a person or list of people.
_f_l_a_g An option, given on the command line of _M_a_i_l, prefaced
with a -. For example, --ff is a flag.
_h_e_a_d_e_r _f_i_e_l_d
At the beginning of a message, a line which contains
information that is part of the structure of the mes-
sage. Popular header fields include _t_o, _c_c, and _s_u_b_-
_j_e_c_t.
_m_a_i_l
A collection of messages. Often used in the phrase,
"Have you read your mail?"
_m_a_i_l_b_o_x
The place where your mail is stored, typically in the
directory /usr/spool/mail.
_m_e_s_s_a_g_e
A single letter from someone, initially stored in your
_m_a_i_l_b_o_x.
_m_e_s_s_a_g_e _l_i_s_t
A string used in _M_a_i_l command mode to describe a
sequence of messages.
_o_p_t_i_o_n
A piece of special purpose information used to tailor
_M_a_i_l to your taste. Options are specified with the sseett
command.
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--3377
99.. SSuummmmaarryy ooff ccoommmmaannddss,, ooppttiioonnss,, aanndd eessccaappeess
This section gives a quick summary of the _M_a_i_l com-
mands, binary and valued options, and tilde escapes.
The following table describes the commands:
Command _D_e_s_c_r_i_p_t_i_o_n
--------------------------------------------------------------------------
++ Same as nneexxtt
-- Back up to previous message
?? Print brief summary of _M_a_i_l commands
!! Single command escape to shell
PPrriinntt Type message with ignored fields
RReeppllyy Reply to author of message only
RReessppoonndd Same as RReeppllyy
TTyyppee Type message with ignored fields
aalliiaass Define an alias as a set of user names
aalltteerrnnaatteess List other names you are known by
cchhddiirr Change working directory, home by default
ccooppyy Copy a message to a file or folder
ddeelleettee Delete a list of messages
ddpp Same as ddtt
ddtt Delete current message, type next message
eeddiitt Edit a list of messages
eellssee Start of else part of conditional; see iiff
eennddiiff End of conditional statement; see iiff
eexxiitt Leave mail without changing anything
ffiillee Interrogate/change current mail file
ffoollddeerr Same as ffiillee
ffoollddeerrss List the folders in your folder directory
ffrroomm List headers of a list of messages
hheeaaddeerrss List current window of messages
hheellpp Same as ??
hhoolldd Same as pprreesseerrvvee
iiff Conditional execution of _M_a_i_l commands
iiggnnoorree Set/examine list of ignored header fields
lliisstt List valid _M_a_i_l commands
llooccaall List other names for the local host
mmaaiill Send mail to specified names
mmbbooxx Arrange to save a list of messages in _m_b_o_x
nneexxtt Go to next message and type it
pprreesseerrvvee Arrange to leave list of messages in system mailbox
pprriinntt Print messages
qquuiitt Leave _M_a_i_l; update system mailbox, _m_b_o_x as appropriate
rreeppllyy Compose a reply to a message
rreessppoonndd Same as rreeppllyy
rreettaaiinn Supersedes iiggnnoorree
ssaavvee Append messages, headers included, on a file
sseett Set binary or valued options
UUSSDD::77--3388 MMaaiill RReeffeerreennccee MMaannuuaall
sshheellll Invoke an interactive shell
ssiizzee Prints out size of message list
ssoouurrccee Read _m_a_i_l commands from a file
ttoopp Print first so many (5 by default) lines of list of messages
ttyyppee Same as pprriinntt
uunnddeelleettee Undelete list of messages
uunnrreeaadd Marks list of messages as not been read
uunnsseett Undo the operation of a sseett
vviissuuaall Invoke visual editor on a list of messages
wwrriittee Append messages to a file, don't include headers
xxiitt Same as eexxiitt
zz Scroll to next/previous screenful of headers
MMaaiill RReeffeerreennccee MMaannuuaall UUSSDD::77--3399
The following table describes the options. Each
option is shown as being either a binary or valued op-
tion.
Option _T_y_p_e _D_e_s_c_r_i_p_t_i_o_n
---------------------------------------------------------------------------
EDITOR _v_a_l_u_e_d Pathname of editor for ~e and eeddiitt
PAGER _v_a_l_u_e_d Pathname of paginator for PPrriinntt, pprriinntt, TTyyppee and ttyyppee
SHELL _v_a_l_u_e_d Pathname of shell for sshheellll, ~! and !!
VISUAL _v_a_l_u_e_d Pathname of screen editor for ~v, vviissuuaall
append _b_i_n_a_r_y Always append messages to end of _m_b_o_x
ask _b_i_n_a_r_y Prompt user for Subject: field when sending
askcc _b_i_n_a_r_y Prompt user for additional Cc's at end of message
autoprint _b_i_n_a_r_y Print next message after ddeelleettee
crt _v_a_l_u_e_d Minimum number of lines before using PPAAGGEERR
debug _b_i_n_a_r_y Print out debugging information
dot _b_i_n_a_r_y Accept . alone on line to terminate message input
escape _v_a_l_u_e_d Escape character to be used instead of ~
folder _v_a_l_u_e_d Directory to store folders in
hold _b_i_n_a_r_y Hold messages in system mailbox by default
ignore _b_i_n_a_r_y Ignore RUBOUT while sending mail
ignoreeof _b_i_n_a_r_y Don't terminate letters/command input with DD
keep _b_i_n_a_r_y Don't unlink system mailbox when empty
keepsave _b_i_n_a_r_y Don't delete ssaavveed messages by default
metoo _b_i_n_a_r_y Include sending user in aliases
noheader _b_i_n_a_r_y Suppress initial printing of version and headers
nosave _b_i_n_a_r_y Don't save partial letter in _d_e_a_d_._l_e_t_t_e_r
quiet _b_i_n_a_r_y Suppress printing of _M_a_i_l version and message numbers
record _v_a_l_u_e_d File to save all outgoing mail in
screen _v_a_l_u_e_d Size of window of message headers for zz, etc.
sendmail _v_a_l_u_e_d Choose alternate mail delivery system
toplines _v_a_l_u_e_d Number of lines to print in ttoopp
verbose _b_i_n_a_r_y Invoke sendmail with the --vv flag
UUSSDD::77--4400 MMaaiill RReeffeerreennccee MMaannuuaall
The following table summarizes the tilde escapes
available while sending mail.
Escape _A_r_g_u_m_e_n_t_s _D_e_s_c_r_i_p_t_i_o_n
----------------------------------------------------------------
~! _c_o_m_m_a_n_d Execute shell command
~b _n_a_m_e _._._. Add names to "blind" Cc: list
~c _n_a_m_e _._._. Add names to Cc: field
~d Read _d_e_a_d_._l_e_t_t_e_r into message
~e Invoke text editor on partial message
~f _m_e_s_s_a_g_e_s Read named messages
~h Edit the header fields
~m _m_e_s_s_a_g_e_s Read named messages, right shift by tab
~p Print message entered so far
~q Abort entry of letter; like RUBOUT
~r _f_i_l_e_n_a_m_e Read file into message
~s _s_t_r_i_n_g Set Subject: field to _s_t_r_i_n_g
~t _n_a_m_e _._._. Add names to To: field
~v Invoke screen editor on message
~w _f_i_l_e_n_a_m_e Write message on file
~| _c_o_m_m_a_n_d Pipe message through _c_o_m_m_a_n_d
~: _M_a_i_l _c_o_m_m_a_n_d Execute a _M_a_i_l command
~~ _s_t_r_i_n_g Quote a ~ in front of _s_t_r_i_n_g
The following table shows the command line flags
that _M_a_i_l accepts:
Flag Description
------------------------------------------------------------
-N Suppress the initial printing of headers
-T _f_i_l_e Article-id's of read/deleted messages to _f_i_l_e
-d Turn on debugging
-f _f_i_l_e Show messages in _f_i_l_e or _~_/_m_b_o_x
-h _n_u_m_b_e_r Pass on hop count for mail forwarding
-i Ignore tty interrupt signals
-n Inhibit reading of /usr/lib/Mail.rc
-r _n_a_m_e Pass on _n_a_m_e for mail forwarding
-s _s_t_r_i_n_g Use _s_t_r_i_n_g as subject in outgoing mail
-u _n_a_m_e Read _n_a_m_e_'_s mail instead of your own
-v Invoke sendmail with the --vv flag
Notes: --TT, --dd, --hh, and --rr are not for human use.